﻿using DataServer.ApplicationLib.Entities;
using Swimj.Core.DependencyInjection;
using Swimj.DataCore;

namespace DataServer.ApplicationLib.Repositories
{
    public interface IDataBaseRepository : IScopedDependency
    {
        Task<Tuple<IEnumerable<DataBaseEntity>, int>> QueryFilterByPageAsync(ConditionCollection conditions,
            int pageIndex, int pageSize);

        Task<IEnumerable<DataBaseEntity>> QueryFilterAsync(ConditionCollection conditions);

        Task InsertAsync(DataBaseEntity dataBaseEntity);

        Task<DataBaseEntity> GetAsync(Guid id);

        Task UpdateAsync(object dataBaseEntity);
    }
}
